export function redirect(url) {
	uni.switchTab({
		url,
		fail() {
			uni.redirectTo({
				url
			})
		}
	})
}

/**
 * 将时间戳转换为相对时间或格式化日期
 * @param {number|null} timestamp - 时间戳（秒或毫秒）
 * @returns {string} 格式化的时间字符串
 */
export function formatTimestamp(timestamp = null) {
	// 如果没有传入时间戳，使用当前时间
	if (timestamp == null) {
		timestamp = Date.now();
	}

	// 确保时间戳为数字类型
	timestamp = Number(timestamp);

	// 判断时间戳是秒还是毫秒，并统一转换为毫秒
	// 10位数字为秒级时间戳，13位为毫秒级时间戳
	if (timestamp.toString().length === 10) {
		timestamp *= 1000;
	}

	// 计算时间差（秒）
	const now = Date.now();
	const diffInSeconds = Math.floor((now - timestamp) / 1000);

	// 根据时间差返回相应的描述
	if (diffInSeconds < 300) {
		return '刚刚';
	} else if (diffInSeconds < 3600) {
		return `${Math.floor(diffInSeconds / 60)}分钟前`;
	} else if (diffInSeconds < 86400) {
		return `${Math.floor(diffInSeconds / 3600)}小时前`;
	} else if (diffInSeconds < 2592000) {
		return `${Math.floor(diffInSeconds / 86400)}天前`;
	} else {
		// 超过30天，返回格式化日期
		const date = new Date(timestamp);
		const year = date.getFullYear();
		const month = String(date.getMonth() + 1).padStart(2, '0');
		const day = String(date.getDate()).padStart(2, '0');
		return `${year}-${month}-${day}`;
	}
}